package com.example.learnquartz.constant;

/**
 * 任务调度通用常量
 *
 * @author ruoyi
 */
public class ScheduleConstants {
    /**
     * https://doc.ruoyi.vip/ruoyi/document/htsc.html#%E5%AE%9A%E6%97%B6%E4%BB%BB%E5%8A%A1
     * 点击执行一次，测试定时任务是否正常及调度日志是否正确记录，如正常执行表示任务配置成功。
     *
     * 执行策略详解：
     * 立即执行（所有misfire的任务会马上执行）打个比方，如果9点misfire了，在10：15系统恢复之后，9点，10点的misfire会马上执行
     * 执行一次（会合并部分的misfire，正常执行下一个周期的任务）假设9，10的任务都misfire了，系统在10：15分起来了。只会执行一次misfire，下次正点执行。
     * 放弃执行(所有的misfire不管，执行下一个周期的任务)
     *
     * 方法参数详解：
     * 字符串（需要单引号''标识 如：ryTask.ryParams(’ry’)）
     * 布尔类型（需要true false标识 如：ryTask.ryParams(true)）
     * 长整型（需要L标识 如：ryTask.ryParams(2000L)）
     * 浮点型（需要D标识 如：ryTask.ryParams(316.50D)）
     * 整型（纯数字即可）
     *
     */


    public static final String TASK_CLASS_NAME = "TASK_CLASS_NAME";

    /**
     * 执行目标key
     */
    public static final String TASK_PROPERTIES = "TASK_PROPERTIES";

    /**
     * 默认  (先立即执行1次，然后按照cron的规则执行)
     */
    public static final String MISFIRE_DEFAULT = "0";

    /**
     * 立即触发执行
     */
    public static final String MISFIRE_IGNORE_MISFIRES = "1";

    /**
     * 触发一次执行
     */
    public static final String MISFIRE_FIRE_AND_PROCEED = "2";

    /**
     * 不触发立即执行
     */
    public static final String MISFIRE_DO_NOTHING = "3";

    public enum Status {
        /**
         * 正常
         */
        NORMAL("0"),
        /**
         * 暂停
         */
        PAUSE("1");

        private String value;

        private Status(String value) {
            this.value = value;
        }

        public String getValue() {
            return value;
        }
    }
}
